home *** CD-ROM | disk | FTP | other *** search
/ PCMania 73 / PCMania CD73_1.iso / pcmania / render73 / Foro / FUERTES / SUB_MK2 / SS_MK2.INC < prev    next >
Text File  |  1998-08-05  |  10KB  |  433 lines

  1. #ifndef (madera)
  2.         #include "marina.tex"
  3. #end
  4.  
  5. #declare casco1=
  6. union
  7. {
  8.  sphere
  9.  {
  10.   0,20
  11.   scale <1.5,1,1>
  12.   clipped_by {plane {x,0}}
  13.  }
  14.  sphere
  15.  {
  16.   0,20
  17.   scale <4.5,1,1>
  18.   clipped_by {plane {-x,0}}
  19.   translate x*40
  20.  }
  21.  cylinder {<0,0,0>,<40,0,0>,20}
  22. }
  23.  
  24. #declare lamina_casco=
  25. difference
  26. {
  27.  object{ casco1}
  28.  box {<-31,0,21>,<131,-21,-21>}
  29.  box {<-31,21,21>,<131,0,-21> rotate x*29}
  30.  bounded_by {box {<-31,15,21>,<131,-1,-21>}}
  31. }
  32.  
  33. #declare refuerzos_casco=
  34. union
  35. {
  36.  difference //proa
  37.  {
  38.   sphere {0,20.5 scale <1.5,1,1> clipped_by {plane {x,0}}}
  39.   sphere {<0,20,-20>,20.5}
  40.   sphere {<0,20,20>,20.5}
  41.   sphere {<0,-20,20>,20.5}
  42.   sphere {<0,-20,-20>,20.5}
  43.   bounded_by {box {<-31,21,21>,<1,-21,-21>}}
  44.  }
  45.  cylinder {<30,0,0>,<35,0,0>,20.3} //1er refuerzo
  46.  cylinder {<0,0,0>,<5,0,0>,20.3} //2o refuerzo
  47.  difference //3er refuerzo y popa
  48.  {
  49.   sphere
  50.   {
  51.    0,20.3
  52.    scale <4.5,1,1>
  53.    clipped_by {plane {-x,0}}
  54.    translate x*40
  55.   }
  56.   box {<65,21,21>,<0,-21,-21>}
  57.   box {<70,21,21>,<90,-21,-21>}
  58.  }
  59.  #declare aa=15 //remaches
  60.  #while (aa<360)
  61.    sphere {0,1.5 scale <1,.75,1> translate <2.5,20.3,0> rotate x*aa}
  62.    sphere {0,1.5 scale <1,.75,1> translate <32.5,20.3,0> rotate x*aa}
  63.    sphere {0,1.5 scale <1,.75,1> translate <67.5,19,0> rotate x*aa}
  64.    sphere {0,1.5 scale <1,.75,1> translate <92,16,0> rotate x*aa}
  65.    #declare aa=aa+30
  66.  #end
  67.  sphere {0,1.5 scale <1,.75,1> translate <-15,18,0> }
  68.  sphere {0,1.5 scale <1,.75,1> translate <-15,18,0> rotate x*90}
  69.  sphere {0,1.5 scale <1,.75,1> translate <-15,18,0> rotate x*190}
  70.  sphere {0,1.5 scale <1,.75,1> translate <-15,18,0> rotate x*270}
  71.  texture{metal}
  72. }
  73.  
  74. #declare espolon=
  75. union
  76. {
  77.  cone {<-20,0,0>,12.5,<-45,0,0>,2}
  78.  cone {<-50,0,0>,5,<-45,0,0>,2}
  79.  cone {<-50,0,0>,5,<-85,0,0>,0}
  80.  prism
  81.  {
  82.   linear_spline .15,-.15 12
  83.   <-30,0>,<-20,35>,<-35,10>,<-25,40>,<-50,10>,<-65,5>,<-50,25>,<-83,0>,<-35,-15>,
  84.   <-37,-10>,<-20,-20>,<-30,0> rotate x*-90
  85.  }
  86.  prism
  87.  {
  88.   linear_spline .15,-.15 9
  89.   <-30,0>,<-20,20>,<-35,10>,<-35,15>,<-83,0>,<-35,-15>,<-35,-10>,<-20,-20>,<-30,0>
  90.  }
  91.  prism
  92.  {
  93.   linear_spline .15,-.15 9
  94.   <-30,0>,<-20,20>,<-35,10>,<-35,15>,<-83,0>,<-35,-15>,<-35,-10>,<-20,-20>,<-30,0>
  95.   rotate x*45
  96.  }
  97.  prism
  98.  {
  99.   linear_spline .15,-.15 9
  100.   <-30,0>,<-20,20>,<-35,10>,<-35,15>,<-83,0>,<-35,-15>,<-35,-10>,<-20,-20>,<-30,0>
  101.   rotate x*-45
  102.  }
  103.  texture {metal}
  104. }
  105.  
  106. #declare aleta1=
  107. difference
  108. {
  109.  union
  110.  {
  111.   cylinder { <0,0,.3>,<0,0,-.3>,29 }
  112.   cylinder { <0,.3,0>,<0,-.3,0>,29 }
  113.  }
  114.  box {<0,41,-41>,<41,-41,41>}
  115.  texture {madera}
  116. }
  117.  
  118. #declare refuerzos_aleta=
  119. union
  120. {
  121.  difference
  122.  {
  123.   difference
  124.   {
  125.    cylinder {<0,0,.5>,<0,0,-.5>,30}
  126.    cylinder {<0,0,.6>,<0,0,-.6>,28}
  127.   }
  128.   box {<0,41,-41>,<41,-41,41>}
  129.  }
  130.  sphere {<-29,0,.5>,.5 rotate z*45}
  131.  sphere {<-29,0,.5>,.5 rotate z*-45}
  132.  sphere {<-29,0,.5>,.5 rotate z*88}
  133.  sphere {<-29,0,.5>,.5 rotate z*-88}
  134.  sphere {<-29,0,-.5>,.5 rotate z*45}
  135.  sphere {<-29,0,-.5>,.5 rotate z*-45}
  136.  sphere {<-29,0,-.5>,.5 rotate z*88}
  137.  sphere {<-29,0,-.5>,.5 rotate z*-88}
  138.  texture {metal}
  139. }
  140.  
  141. #declare timones=
  142. union
  143. {
  144.  box {<-4,35,.5>,<0.001,-35,-.5>} //refuerzo
  145.  sphere {<-2.5,22.5,-.5>,.6} //remaches
  146.  sphere {<-2.5,-22.5,-.5>,.6} //remaches
  147.  sphere {<-2.5,22.5,.5>,.6} //remaches
  148.  sphere {<-2.5,-22.5,.5>,.6} //remaches
  149.  box {<-3,30,.65>,<3,34,-.65>} //bisagras
  150.  box {<-3,19,.65>,<3,15,-.65>} //bisagras
  151.  box {<-3,-30,.65>,<3,-34,-.65>} //bisagras
  152.  box {<-3,-19,.65>,<3,-15,-.65>} //bisagras
  153.  cylinder {<0,30,0>,<0,34,0>,1.5} //bisagras
  154.  cylinder {<0,19,0>,<0,15,0>,1.5} //bisagras
  155.  cylinder {<0,-30,0>,<0,-34,0>,1.5} //bisagras
  156.  cylinder {<0,-19,0>,<0,-15,0>,1.5} //bisagras
  157.  box {<1,38,.4>,<10,13,-.4>}
  158.  box {<1,-38,.4>,<10,-13,-.4>}
  159.  texture {metal}
  160. }
  161.  
  162. #declare mandos=
  163. union
  164. {
  165.  box {<1,19.9,7>,<2,20.1,-7>}
  166.  cylinder {<1.5,20,6.5>,<-50,10,5>,.1}
  167.  cylinder {<1.5,20,-6.5>,<-50,10,-5>,.1}
  168.  texture {metal}
  169. }
  170.  
  171. #declare aleta=
  172. union
  173. {
  174.  union
  175.  {
  176.   object {refuerzos_aleta}
  177.   object {refuerzos_aleta rotate x*90}
  178.   object {aleta1}
  179.   scale <1,1.3,1.3>
  180.  }
  181.  object {timones}
  182.  object {timones rotate x*90}
  183.  object {mandos}
  184.  object {mandos rotate x*90}
  185.  object {mandos rotate x*180}
  186.  object {mandos rotate x*270}
  187.  translate x*120
  188. }
  189.  
  190. #declare pala=
  191. union
  192. {
  193.  box {<-3,2,.2>,<3,14,-.2> texture {madera}}
  194.  box {<-2.5,1,.3>,<-4,15,-.3> texture {metal}}
  195.  box {<2.5,1,.3>,<4,15,-.3> texture {metal}}
  196.  box {<4,14,.3>,<-4,15,-.3> texture {metal}}
  197.  box {<4,1,.3>,<-4,2,-.3> texture {metal}}
  198. }
  199.  
  200. #declare helice=
  201. union
  202. {
  203.  #declare aa=0
  204.  #while (aa<360)
  205.   object {pala rotate y*45 rotate x*aa translate x*135}
  206.   #declare aa=aa+45
  207.  #end
  208.  difference
  209.  {
  210.   cylinder {<134.5,0,0>,<135.5,0,0>,15.5}
  211.   cylinder {<131,0,0>,<138,0,0>,15}
  212.   texture {metal}
  213.  }
  214. }
  215.  
  216. #declare torreta1=
  217. difference
  218. {
  219.  union
  220.  {
  221.   cylinder {<-10,0,0>,<-10,15,0>,10}
  222.   box {<-10,0,10>,<0,15,-10>}
  223.  }
  224.  union
  225.  {
  226.   box {<-10,-1,-11>,<-10.2,16,11>}
  227.   box {<-21,-1,.1>,<1,16,-.1>}
  228.   cylinder {<-10,8,0>,<-22,8,0>,3.5}
  229.   cylinder {<-10,8,11>,<-10,8,-11>,3.5}
  230.   pigment {rgb 0}
  231.  }
  232.  texture {madera}
  233. }
  234.  
  235. #declare refuerzos_torreta=
  236. union
  237. {
  238.  cylinder {<-10,-5,0>,<-10,2,0>,11}
  239.  box {<-10,-5,11>,<0,2,-11>}
  240.  #declare aa=0
  241.  #while (aa<181)
  242.    sphere {<0,1,-11>,1 rotate y*aa translate x*-10}
  243.    #declare aa=aa+45
  244.  #end
  245.  sphere {<-5,1,11>,1}
  246.  sphere {<-5,1,-11>,1}
  247.  texture {metal}
  248. }
  249.  
  250. #declare ojo_de_buey=
  251. union
  252. {
  253.   difference
  254.   {
  255.     cylinder {<-8,8,0>,<-12,8,0>,4}
  256.     cylinder {<1,8,0>,<-13,8,0>,3}
  257.   }
  258.   torus {4,.1 rotate z*90 translate <-11,8,0> pigment {rgb 0}}
  259.   sphere {<-12,11.5,0>,.5}
  260.   sphere {<-12,4.5,0>,.5}
  261.   sphere {<-12,8,3.5>,.5}
  262.   sphere {<-12,8,-3.5>,.5}
  263.   sphere {0,3 scale <.2,1,1> translate <-10.5,8,0>
  264.           pigment {rgbt <1,1,1,.5>} finish {reflection .6 specular 1 diffuse 0}}
  265.   texture {metal}
  266. }
  267.  
  268. #declare torreta2=
  269. union
  270. {
  271.  cylinder {<0,-5,0>,<0,15,0>,10.1 clipped_by {plane {-x,0}}}
  272.  sphere {<0,13,-10.1>,1 rotate y*-10}
  273.  sphere {<0,13,10.1>,1 rotate y*10}
  274.  sphere {<0,4,-10.1>,1 rotate y*-10}
  275.  sphere {<0,4,10.1>,1 rotate y*10}
  276.  texture {metal}
  277. }
  278.  
  279. #declare escotilla_torreta=
  280. union
  281. {
  282.  cylinder {<5,10,0>,<5,16,0>,5}
  283.  #declare aa=0
  284.  #while (aa<360)
  285.    sphere {<0,0,4.5>,.5 rotate y*aa translate <5,16,0>}
  286.    #declare aa=aa+45
  287.  #end
  288.  sphere {0,4 scale <1,.25,1> translate <5,16,0>}
  289.  cylinder {<5,10,0>,<5,18.5,0>,.2}
  290.  cylinder {<5,18,1.5>,<5,18,-1.5>,.2}
  291.  cylinder {<3.5,18,0>,<6.5,18,0>,.2}
  292.  torus {1.5,.2 translate <5,18,0>}
  293.  
  294.  box {<7,16,1>,<11,17.5,1.1>}
  295.  box {<7,16,-1>,<11,17.5,-1.1>}
  296.  box {<10,18,.9>,<11,10,.8>}
  297.  box {<10,18,-.9>,<11,10,-.8>}
  298.  cylinder {<10.5,16.5,-1.2>,<10.5,16.5,1.2>,.4}
  299.  
  300.  texture {metal}
  301. }
  302.  
  303. #declare puente=
  304. union
  305. {
  306.  box {<0,15,3>,<-10,16,-3>} //piso
  307.  cylinder {<-10,15,0>,<-10,16,0>,3} //piso
  308.  
  309.  torus {10,1 clipped_by {plane {x,0}} translate <-10,15,0>}
  310.  cylinder {<0,15,-10>,<-10,15,-10>,1}
  311.  sphere {<0,15,-10>,1}
  312.  cylinder {<0,15,10>,<-10,15,10>,1}
  313.  sphere {<0,15,10>,1}
  314.  
  315.  prism {linear_spline -10,-11 6 <0,15>,<0,20>,<-5,25>,<-10,25>,<-10,15>,<0,15> rotate x*-90}
  316.  prism {linear_spline 10,11 6 <0,15>,<0,20>,<-5,25>,<-10,25>,<-10,15>,<0,15> rotate x*-90}
  317.  difference
  318.  {
  319.   cylinder {<-10,15,0>,<-10,25,0>,11}
  320.   cylinder {<-10,14,0>,<-10,26,0>,10}
  321.   box {<-10,13,12>,<3,27,-12>}
  322.  }
  323.  
  324.  torus {10,1 clipped_by {plane {x,0}} translate <-10,25,0>}
  325.  cylinder {<-5,25,-10>,<-10,25,-10>,1}
  326.  cylinder {<-5,25,10>,<-10,25,10>,1}
  327.  
  328.  box {<0,15,-9>,<-2,20,-10>}
  329.  box {<0,15,9>,<-2,20,10>}
  330.  box {<-10,15,-9>,<-8,25,-10>}
  331.  box {<-10,15,9>,<-8,25,10>}
  332.  box {<-19.5,15,1>,<-18,25,-1>}
  333.  
  334.  texture {metal}
  335. }
  336.  
  337. #declare torreta=
  338. union
  339. {
  340.  object {torreta1}
  341.  object {refuerzos_torreta}
  342.  object {torreta2}
  343.  object {puente}
  344.  object {escotilla_torreta}
  345.  object {ojo_de_buey translate x*-10}
  346.  object {ojo_de_buey rotate y*90 translate x*-10}
  347.  object {ojo_de_buey rotate y*-90 translate x*-10}
  348. }
  349.  
  350. #declare escotilla=
  351. union
  352. {
  353.  cylinder {<0,0,0>,<0,22,0>,8.1}
  354.  cylinder {<0,0,0>,<0,22.1,0>,8}
  355.  #declare aa=0
  356.  #while (aa<360)
  357.   sphere {<0,22.1,7.5>,.5 rotate y*aa}
  358.   #declare aa=aa+30
  359.  #end
  360.  sphere {0,7 scale <1,.25,1> translate y*22.1}
  361.  cylinder {<0,20,0>,<0,24.5,0>,.2}
  362.  cylinder {<-3,24,0>,<3,24,0>,.2}
  363.  cylinder {<0,24,-3>,<0,24,3>,.2}
  364.  torus {3,.2 translate <0,24,0>}
  365.  
  366.  box {<4,23,2>,<10,22,2.2>}
  367.  box {<4,23,-2>,<10,22,-2.2>}
  368.  box {<8.2,23,1.9>,<10,20,1.7>}
  369.  box {<8.2,23,-1.9>,<10,20,-1.7>}
  370.  cylinder {<9,22,-2.3>,<9,22,2.3>,.5}
  371.  texture {metal}
  372. }
  373.  
  374. #declare snorkel=
  375. union
  376. {
  377.  cylinder {<17,0,0>,<17,83,0>,2}
  378.  sphere {0,4 clipped_by {plane{-y,0}} translate <17,83,0>}
  379.  texture {metal}
  380. }
  381.  
  382. #declare periscopio=
  383. union
  384. {
  385.  cylinder {<10,33,0>,<10,80,0>,2}
  386.  sphere {<10,80,0>,2}
  387.  difference
  388.  {
  389.   cylinder {<5,80,0>,<10,80,0>,2}
  390.   cylinder {<2,80,0>,<10,80,0>,1.5}
  391.  }
  392.  sphere {0,1.5 scale <.2,1,1> translate <6,80,0> pigment {rgb 1} finish {reflection 1}}
  393.  texture {metal}
  394. }
  395.  
  396. #declare ss_mk2=
  397. union
  398. {
  399.  #declare aa=0
  400.  #while (aa<360)
  401.   object {lamina_casco rotate x*aa texture {madera translate (aa*35)*26}}
  402.   #declare aa=aa+30
  403.  #end
  404.  object {refuerzos_casco}
  405.  object {espolon}
  406.  object {aleta}
  407.  union //eje helice
  408.  {
  409.   cylinder {<120,0,0>,<140,0,0>,1}
  410.   sphere {<140,0,0>,1}
  411.   texture {metal}
  412.  }
  413.  object {helice}
  414.  object {torreta translate <20,20,0>}
  415.  object {snorkel}
  416.  object {periscopio}
  417.  object {escotilla translate x*50}
  418.  #ifdef (estela)
  419.  union
  420.  {
  421.   sphere  {   0,1 hollow no_shadow pigment {rgbt 1}
  422.    halo   {  linear glowing turbulence .1  lambda 5  jitter 10
  423.     color_map  {    [0 rgbt 1] [.5 rgbt .5]   [1 rgb 2]  } }
  424.    clipped_by {plane {-x,0}} scale <7.5,1,1> }
  425.   sphere  {   0,1 hollow no_shadow pigment {rgbt 1}
  426.    halo   {  linear glowing turbulence .1  lambda 5  jitter 10
  427.     color_map  {    [0 rgbt 1] [.5 rgbt .5] [1 rgb 2]  } }
  428.    clipped_by {plane {x,0}}  }
  429.    scale 30  translate x*135
  430.   }
  431.  #end
  432. }
  433.